home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Source / GNU / cc / objc / README < prev    next >
Text File  |  1993-08-24  |  4KB  |  109 lines

  1.  
  2. [ This is probably out of date -- ask Kresten for details if needed ]
  3.  
  4. GNU Objective C release notes for gcc 2.4
  5. *****************************************
  6.  
  7. Since gcc 2.3.3 the Objective C as part of gcc has changed a lot.
  8. This document is to explain what has been done, and a little about
  9. how specific features differ from other implementations.  The runtime
  10. has been completely rewritten.  The earlier runtime had several
  11. severe bugs and was rather incomplete.  The compiler has had several
  12. new features added as well.
  13.  
  14. This is not documentation for Objective C, it is usable to someone
  15. who knows Objective C from somewhere else.
  16.  
  17.  
  18. Runtime API functions
  19. =====================
  20.  
  21. The runtime is moddeled after the NeXT Objective C runtime.  That is,
  22. most functions have semanthics as it is known from the NeXT.  The
  23. names, however, have changed.  All runtime API functions have names
  24. of lowercase letters and and underscores as opposed to the
  25. `traditional' mixed case names.  
  26.     The runtime api functions are not documented as of now.
  27. Someone offered to write it, and did it, but we were not allowed to
  28. use it by his university (Very sad story).  We have started writing
  29. the documentation over again.  This will be announced appropriate
  30. places when it becomes avilable.
  31.  
  32.  
  33. Protocols
  34. =========
  35.  
  36. Protocols are now fully supported. The semanthics is exactly as on the
  37. NeXT.  There is a flag to specify how protocols should be typechecked
  38. when adopted to classes.  The normal typechecker requires that all
  39. methods in a given protocol must be implemented in the class that
  40. adopts it -- it is not enough to inherit them.  The flag
  41. `-Wno-protocol' causes it to allow inherited methods, while
  42. `-Wprotocols' is the default which requires them defined.
  43.  
  44.  
  45. +initialize 
  46. ===========
  47.  
  48. This method, if defined, is called before any other instance or class
  49. methods of that particular class.  This method is not inherited, and
  50. is thus not called as initializer for a subclass that doesn't define
  51. it itself.  Thus, each +initialize method is called exactly once (or
  52. never if no methods of that particular class is never called).
  53. Besides this, it is allowed to have several +initialize methods, one
  54. for each category.  The order in which these (multiple methods) are
  55. called is not well defined.  I am not completely certain what the
  56. semathics of this method is for other implementations, but this is
  57. how it works for GNU Objective C.
  58.  
  59.  
  60. Passivation/Activation/Typedstreams
  61. ===================================
  62.  
  63. This is supported in the style of NeXT TypedStream's.  Consult the
  64. headerfile Typedstreams.h for api functions.  I (Kresten) have
  65. rewritten it in Objective C, but this implementation is not part of
  66. 2.4, it is available from the GNU Objective C prerelease archive. 
  67.    There is one semathic difference worth noting concerning objects
  68. stored with objc_write_object_reference (aka NXWriteObjectReference).
  69. When these are read back in, their object is not guaranteed to be
  70. available until the `-awake' method is called in the object that
  71. requests that object.  To objc_read_object you must pass a pointer to
  72. an id, which is valid after exit from the function calling it (like
  73. e.g. an instance variable).  In general, you should not use objects
  74. read in until the -awake method is called.
  75.  
  76.  
  77. Acknowledgements
  78. ================
  79.  
  80. The GNU Objective C team: Geoffrey Knauth <gsk@marble.com> (manager),
  81. Tom Wood <wood@next.com> (compiler) and Kresten Krab Thorup
  82. <krab@iesd.auc.dk> (runtime) would like to thank a some people for
  83. participating in the development of the present GNU Objective C.
  84.  
  85. Paul Burchard <burchard@geom.umn.edu> and Andrew McCallum
  86. <mccallum@cs.rochester.edu> has been very helpful debugging the
  87. runtime.   Eric Herring <herring@iesd.auc.dk> has been very helpful
  88. cleaning up after the documentation-copyright disaster and is now
  89. helping with the new documentation.
  90.  
  91. Steve Naroff <snaroff@next.com> and Richard Stallman
  92. <rms@gnu.ai.mit.edu> has been very helpful with implementation details
  93. in the compiler.
  94.  
  95.  
  96. Prerelease Archive
  97. ==================
  98.  
  99. Intermediate releases, bugfixes and additional other information of
  100. the GNU Objective C will be available from iesd.auc.dk in the
  101. directory /pub/ObjC.
  102.  
  103.  
  104. Bug Reports
  105. ===========
  106.  
  107. Please read the section `Submitting Bugreports' of the gcc manual
  108. before you submit any bugs.
  109.